package l1j.opqlo.Server.etcitem.卷軸;

import static l1j.server.server.model.skill.L1SkillId.AWAKEN_ANTHARAS;
import static l1j.server.server.model.skill.L1SkillId.AWAKEN_FAFURION;
import static l1j.server.server.model.skill.L1SkillId.AWAKEN_VALAKAS;
import static l1j.server.server.model.skill.L1SkillId.SHAPE_CHANGE;
import l1j.server.server.datatables.PolyTable;
import l1j.server.server.model.L1PolyMorph;
import l1j.server.server.model.Instance.L1ItemInstance;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.serverpackets.S_ServerMessage;

public class PolyScroll {

	/** 變形卷軸相關 */
	/*
	 * } else if (itemId == 40088 // 變身スクロール || itemId == 40096 // 象牙の塔の變身スクロール
	 * || itemId == 140088) { // 祝福された變身スクロール
	 */

	public static void begin(final String s, final L1PcInstance pc,
			L1ItemInstance l1iteminstance) {

		final int itemId = l1iteminstance.getItemId();

		/*
		 * if (usePolyScroll(pc, itemId, s)) {
		 * pc.getInventory().removeItem(l1iteminstance, 1); } else {
		 * pc.sendPackets(new S_ServerMessage(181)); // \f1そのようなモンスターには變身できません。
		 * }
		 */

		final int awakeSkillId = pc.getAwakeSkillId();
		if (awakeSkillId == AWAKEN_ANTHARAS || awakeSkillId == AWAKEN_FAFURION
				|| awakeSkillId == AWAKEN_VALAKAS) {
			pc.sendPackets(new S_ServerMessage(1384)); // 現在の狀態では變身できません。
			return;
		}

		int time = 0;
		if (itemId == 40088 || itemId == 40096) { // 變身スクロール、象牙の塔の變身スクロール
			time = 1800;
		} else if (itemId == 140088) { // 祝福された變身スクロール
			time = 2100;
		}

		final L1PolyMorph poly = PolyTable.getInstance().getTemplate(s);
		if (poly != null || s.equals("")) {
			if (s.equals("")) {
				if (pc.getTempCharGfx() == 6034 || pc.getTempCharGfx() == 6035) {
					pc.getInventory().removeItem(l1iteminstance, 1);
					return;
				} else {
					pc.removeSkillEffect(SHAPE_CHANGE);
					pc.getInventory().removeItem(l1iteminstance, 1);
					return;
				}
			} else if (poly.getMinLevel() <= pc.getLevel() || pc.isGm()) {
				L1PolyMorph.doPoly(pc, poly.getPolyId(), time,
						L1PolyMorph.MORPH_BY_ITEMMAGIC);
				pc.getInventory().removeItem(l1iteminstance, 1);
				return;
			} else {
				pc.sendPackets(new S_ServerMessage(181)); // \f1そのようなモンスターには變身できません。
				return;
			}
		} else {
			pc.sendPackets(new S_ServerMessage(181)); // \f1そのようなモンスターには變身できません。
			return;
		}
	}

}
